import { range, filter, map } from 'rxjs';

//RxJS: Reactive Extensions For JavaScript
//https://www.npmjs.com/package/rxjs
// https://rxjs.dev/
/*
RxJS 是一个库，它通过使用 observable 序列来编写异步和基于事件的程序。它提供了一个核心类型 Observable，附属类型 (Observer、 Schedulers、 Subjects) 和受 [Array#extras] 启发的操作符 (map、filter、reduce、every, 等等)，这些数组操作符可以把异步事件作为集合来处理。

作者：Amy本尊60073
链接：https://juejin.cn/post/6844903736205443086
来源：稀土掘金
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
*/

//region 取数逻辑
const pip = range(1, 200)
  .pipe(
    filter(x => x % 2 === 1),
    map(x => x + x),
    //filter(x => x % 3 === 0),
    //filter(x => x % 6 === 0),
  );
//endregion

// 这个管道（pip）最后生成的内容会传递给我们不同的“模块”
// 不同的“模块”通过subscribe订阅这个管道（pip）的内容进行消费

// 这样做的好处是把我们数据处理和最终展示分离，做了一个响应式（？）


//region 怎么进行渲染展示（消费）？
pip.subscribe(x => console.log('x:',x));
pip.subscribe(x => console.log('x+1:',x+1));
//endregion
